package com.gorkr.cronback.pattern.parser;

/**
 * 星期值处理<br>
 * 1表示星期一，2表示星期二，7都可以表示星期日,为最后一天
 * @author gorkr
 */
public class DayOfWeekParser extends ValueParser{
    public DayOfWeekParser() {
        super(0, 7);
    }

    private static final String[] aliases = {"sun","mon", "tue", "wed", "thu", "fri", "sat"};

    @Override
    public int parse(String value){
        try {
            return super.parse(value) % 7;
        }catch (Exception e){
            return parseAlias(value);
        }
    }

    private int parseAlias(String value){
        if("L".equalsIgnoreCase(value)){
            // 最后一天设置为 星期日
            return 0;
        }
        for (int i = 0; i < aliases.length; i++) {
            if (aliases[i].equalsIgnoreCase(value)) {
                return i;
            }
        }
        return -1;
    }
}
